package psc.model.base.cliente;

import java.util.Date;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import psc.model.base.basicas.TipoLimite;

@Entity
@Table
public class Limite {

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private int id;

	@Column(name = "data_validade", nullable = false)
	@Temporal(TemporalType.DATE)
	private Date dataValidade;

	@Column(name = "valor", nullable = false)
	private Float valor;

	@ManyToOne(fetch = FetchType.EAGER, cascade = { CascadeType.ALL })
	@JoinColumn(name = "tipo_limite_id", nullable = false)
	private TipoLimite tipoLimite;

	@Column(name = "taxa_juros", nullable = false)
	private Float taxaJuros;

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "conta_id", nullable = false)
	private Conta conta;

	public Conta getConta() {
		return conta;
	}

	public void setConta(Conta conta) {
		this.conta = conta;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public Date getDataValidade() {
		return dataValidade;
	}

	public void setDataValidade(Date dataValidade) {
		this.dataValidade = dataValidade;
	}

	public Float getValor() {
		return valor;
	}

	public void setValor(Float valor) {
		this.valor = valor;
	}

	public TipoLimite getTipoLimite() {
		return tipoLimite;
	}

	public void setTipoLimite(TipoLimite tipoLimite) {
		this.tipoLimite = tipoLimite;
	}

	public Float getTaxaJuros() {
		return taxaJuros;
	}

	public void setTaxaJuros(Float taxaJuros) {
		this.taxaJuros = taxaJuros;
	}

}
